package com.bzkj.basicinfo.domain.receive;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * WMS拒收记录表
 *
 * @TableName wms_reject_record
 *@author lixinyu
 * @date 2025-10-22
 */
@Data
public class WmsRejectRecordEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 拒收单号
     */
    private String rejectNo;

    /**
     * 收货单主表ID
     */
    private Long receiveOrderId;

    /**
     * 收货单号
     */
    private String receiveOrderNo;

    /**
     * 收货明细ID
     */
    private Long receiveDetailId;

    /**
     * 商品ID
     */
    private String productId;

    /**
     * 商品名称
     */
    private String productName;

    /**
     * 批次号
     */
    private String batchCode;

    /**
     * 拒收数量
     */
    private BigDecimal rejectQuantity;

    /**
     * 拒收原因类型（quality质量问题/quantity数量问题/document单据问题/expiry近效期/damage破损/other其他）
     */
    private String rejectReasonType;

    /**
     * 拒收原因描述
     */
    private String rejectReasonDesc;

    /**
     * 拒收品存放货位
     */
    private String rejectLocation;

    /**
     * 拒收操作人
     */
    private String rejectHandler;

    /**
     * 拒收时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date rejectTime;

    /**
     * 处理状态（pending待处理/processing处理中/completed已完成）
     */
    private String handleStatus;

    /**
     * 处理方式（return退回供应商/destroy销毁/downgrade降级使用）
     */
    private String handleMethod;

    /**
     * 处理结果说明
     */
    private String handleResult;

    /**
     * 处理人
     */
    private String handler;

    /**
     * 处理时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date handleTime;

    /**
     * 拍照存档URL（多个用逗号分隔）
     */
    private String photoUrls;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 修改人
     */
    private String updateBy;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 扩展字段1
     */
    private String def1;

    /**
     * 扩展字段2
     */
    private String def2;

    /**
     * 扩展字段3
     */
    private String def3;

    /**
     * 扩展字段4
     */
    private String def4;

    /**
     * 扩展字段5
     */
    private String def5;
}
